gtk4.git
9 years agoUpdated Danish translation
Ask Hjorth Larsen [Thu, 16 Feb 2017 13:30:13 +0000 (14:30 +0100)]
Updated Danish translation

9 years agoUpdated Danish translation
Ask Hjorth Larsen [Thu, 16 Feb 2017 13:27:47 +0000 (14:27 +0100)]
Updated Danish translation

9 years agowidget: Document signal mnemonic-activate
Daniel Boles [Sun, 12 Feb 2017 15:52:02 +0000 (15:52 +0000)]
widget: Document signal mnemonic-activate

Name the extra bool argument, and move the explanatory paragraph from
the emitting method to the signal, with some minor tweaks to wording.

https://bugzilla.gnome.org/show_bug.cgi?id=778534

9 years agogtkshow: Prefer gtk_show_uri_on_window() which works for sandboxed apps
Bastien Nocera [Wed, 15 Feb 2017 12:35:13 +0000 (13:35 +0100)]
gtkshow: Prefer gtk_show_uri_on_window() which works for sandboxed apps

gtk_show_uri_on_window() will pass enough information for Portal helpers
to allow dialogue parenting in Flatpak, gtk_show_uri() won't, so
deprecate it.

https://bugzilla.gnome.org/show_bug.cgi?id=778678

9 years agoUpdate zh_CN translation
Tong Hui [Wed, 15 Feb 2017 12:11:27 +0000 (20:11 +0800)]
Update zh_CN translation

9 years agoVisual Studio builds: Support Visual Studio 2017
Chun-wei Fan [Wed, 15 Feb 2017 06:43:15 +0000 (14:43 +0800)]
Visual Studio builds: Support Visual Studio 2017

Update the autotools scripts to support Visual Studio 2017 builds by
copying the Visual Studio 2013 projects and updateing the items as
necessary to obtain the Visual Studio 2017 projects.

Note that the format of the toolset string changed, so allow one to
pass in and thus use a custom toolset string, otherwise the default
toolset string will be generated as it was before.

Note also the Visual Studio 2017 aims to be compatible with Visual
Studio 2015 on the CRT level, so binaries built with 2017 should
work without problems with the binaries built with 2015.

9 years agoUpdated Spanish translation
Daniel Mustieles [Tue, 14 Feb 2017 19:34:27 +0000 (20:34 +0100)]
Updated Spanish translation

9 years agoiconhelper: Remove unused _draw implementation
Timm Bäder [Tue, 14 Feb 2017 13:22:25 +0000 (14:22 +0100)]
iconhelper: Remove unused _draw implementation

9 years agosnapshot: Avoid a double-free
Timm Bäder [Tue, 14 Feb 2017 12:23:08 +0000 (13:23 +0100)]
snapshot: Avoid a double-free

We can't pass the same string to two different snapshot states since
removing one of them will free the passed string, so just create another
one for the second state.

9 years agowidget: Remove get_preferred_width/height mention in warning
Timm Bäder [Mon, 13 Feb 2017 20:31:24 +0000 (21:31 +0100)]
widget: Remove get_preferred_width/height mention in warning

9 years agogtkcontainerprivate: Remove unused function prototypes
Timm Bäder [Sun, 5 Feb 2017 16:11:24 +0000 (17:11 +0100)]
gtkcontainerprivate: Remove unused function prototypes

9 years agocolorbutton: Inherit from GtkWidget
Timm Bäder [Sun, 5 Feb 2017 08:21:56 +0000 (09:21 +0100)]
colorbutton: Inherit from GtkWidget

9 years ago3.89.4
Matthias Clasen [Mon, 13 Feb 2017 21:05:39 +0000 (16:05 -0500)]
3.89.4

9 years agoUpdate Basque language
Inaki Larranaga Murgoitio [Mon, 13 Feb 2017 21:36:57 +0000 (22:36 +0100)]
Update Basque language

9 years agoUpdate Basque language
Inaki Larranaga Murgoitio [Mon, 13 Feb 2017 21:36:09 +0000 (22:36 +0100)]
Update Basque language

9 years agoUpdated Norwegian bokmål translation.
Kjartan Maraas [Sun, 12 Feb 2017 15:27:26 +0000 (16:27 +0100)]
Updated Norwegian bokmål translation.

9 years agoUpdated Norwegian bokmål translation.
Kjartan Maraas [Sun, 12 Feb 2017 15:23:27 +0000 (16:23 +0100)]
Updated Norwegian bokmål translation.

9 years agoUpdated Czech translation
Marek Černocký [Sun, 12 Feb 2017 12:09:13 +0000 (13:09 +0100)]
Updated Czech translation

9 years agoHC: insensitive styling for views.
Lapo Calamandrei [Wed, 8 Feb 2017 15:53:10 +0000 (16:53 +0100)]
HC: insensitive styling for views.

9 years agoadwaita: insensitive styling for views
Lapo Calamandrei [Wed, 8 Feb 2017 15:45:51 +0000 (16:45 +0100)]
adwaita: insensitive styling for views

Add an insensitive style to views, somehow we didn't ship one, so
for example, disabled textviews looked the same as sensitive ones.

9 years agowayland: do not clamp anchor values
Olivier Fourdan [Wed, 1 Feb 2017 08:41:07 +0000 (09:41 +0100)]
wayland: do not clamp anchor values

Clamping the anchor values as introduced in commit 9a5ffcd to fix bug
777176 breaks menu positioning.

By keeping the anchors rectangle size greater than zero, we end up
deducting some positive value from the original position, so there is no
need to clamp() actually, keeping the values positive is enough and
avoids the issue with menu positioning on the menubar.

An additional benefit is to make the code a lot simpler.

https://bugzilla.gnome.org/show_bug.cgi?id=778009

9 years agogetting-started: typo tie->the
Chris Martin [Fri, 9 Dec 2016 03:13:29 +0000 (22:13 -0500)]
getting-started: typo tie->the

https://bugzilla.gnome.org/show_bug.cgi?id=775864

9 years agoUpdate Polish translation
Piotr Drąg [Sun, 5 Feb 2017 15:08:59 +0000 (16:08 +0100)]
Update Polish translation

9 years agoNever return NULL from gdk_get_program_class
Timm Bäder [Sun, 5 Feb 2017 13:59:19 +0000 (14:59 +0100)]
Never return NULL from gdk_get_program_class

gdk_init is not calling g_set_prgname anymore, so just return a dummy
string from gdk_get_program_class if it has not been set before.

9 years agopopover: Simplify gtk_popover_measure
Timm Bäder [Sun, 5 Feb 2017 12:57:29 +0000 (13:57 +0100)]
popover: Simplify gtk_popover_measure

9 years agoinfobar: Use GtkButton:icon-name
Timm Bäder [Sun, 5 Feb 2017 10:45:50 +0000 (11:45 +0100)]
infobar: Use GtkButton:icon-name

9 years agocolorchooserwidget: Show palette by default
Timm Bäder [Sun, 5 Feb 2017 09:08:25 +0000 (10:08 +0100)]
colorchooserwidget: Show palette by default

Restore the old behavior.

9 years agoUpdate Finnish translation
Jiri Grönroos [Sat, 4 Feb 2017 21:10:03 +0000 (21:10 +0000)]
Update Finnish translation

9 years agonotebook: redraw arrows after closing a tab
Michael Catanzaro [Sat, 21 Jan 2017 02:19:56 +0000 (20:19 -0600)]
notebook: redraw arrows after closing a tab

Thanks to Daniel Boles for helping with a crash in an earlier version of
this patch.

https://bugzilla.gnome.org/show_bug.cgi?id=777547

9 years agoUpdate Icelandic translation
Sveinn í Felli [Sat, 4 Feb 2017 15:24:15 +0000 (15:24 +0000)]
Update Icelandic translation
(cherry picked from commit 6209a8e3061e1d14a00bfc6871996d8f21ae00c9)

9 years agospinbutton: Fix right and middle click on +/- buttons
Timm Bäder [Wed, 1 Feb 2017 20:03:39 +0000 (21:03 +0100)]
spinbutton: Fix right and middle click on +/- buttons

Tell the gesture that we handle all buttons and actually claim the
gesture in the ::pressed handler

9 years agoUpdate Spanish translation
Daniel Mustieles [Wed, 1 Feb 2017 10:15:52 +0000 (10:15 +0000)]
Update Spanish translation

9 years agosearchentry: Fix typo in documentation
Daniel Boles [Tue, 31 Jan 2017 09:39:39 +0000 (09:39 +0000)]
searchentry: Fix typo in documentation

9 years agostack: Fix node position during crossfade
Timm Bäder [Sun, 29 Jan 2017 16:55:00 +0000 (17:55 +0100)]
stack: Fix node position during crossfade

9 years agotogglebutton: Move :inconsistent to GtkCheckButton
Timm Bäder [Sat, 28 Jan 2017 07:11:14 +0000 (08:11 +0100)]
togglebutton: Move :inconsistent to GtkCheckButton

9 years agotogglebutton: Move :draw-indicator property to GtkCheckButton
Timm Bäder [Fri, 27 Jan 2017 11:02:47 +0000 (12:02 +0100)]
togglebutton: Move :draw-indicator property to GtkCheckButton

It's not used in GtkToggleButton at all, only in GtkCheckButton and
GtkRadioButton.

9 years agocheckbutton: Remove unused vfunc
Timm Bäder [Fri, 27 Jan 2017 10:16:03 +0000 (11:16 +0100)]
checkbutton: Remove unused vfunc

9 years agocheckbutton: Remove unused function prototype
Timm Bäder [Fri, 27 Jan 2017 10:07:41 +0000 (11:07 +0100)]
checkbutton: Remove unused function prototype

9 years agowidget: Remove gtk_widget_class_list_style_properties
Timm Bäder [Thu, 26 Jan 2017 17:58:10 +0000 (18:58 +0100)]
widget: Remove gtk_widget_class_list_style_properties

Unused.

9 years agogtkbuilder: Remove unused struct
Timm Bäder [Sat, 28 Jan 2017 17:24:30 +0000 (18:24 +0100)]
gtkbuilder: Remove unused struct

9 years agobuild: Stop compressing ui files
Timm Bäder [Thu, 26 Jan 2017 12:31:56 +0000 (13:31 +0100)]
build: Stop compressing ui files

It's slower at runtime. Instead, strip blanks.

9 years agomir: handle surface placement events
William Hua [Sun, 29 Jan 2017 16:24:43 +0000 (11:24 -0500)]
mir: handle surface placement events

This allows the Mir backend to properly emit "moved-to-rect."

9 years agomir: use mir_surface_spec_set_placement for menus
William Hua [Fri, 27 Jan 2017 19:46:10 +0000 (14:46 -0500)]
mir: use mir_surface_spec_set_placement for menus

This API was added to Mir for GTK menus, combo boxes, etc.

9 years agoUpdate Galician translation
Fran Dieguez [Sun, 29 Jan 2017 19:59:21 +0000 (19:59 +0000)]
Update Galician translation

9 years agoUpdate Galician translation
Fran Dieguez [Sun, 29 Jan 2017 19:48:13 +0000 (19:48 +0000)]
Update Galician translation

9 years agoUpdate Slovak translation
Dušan Kazik [Sun, 29 Jan 2017 09:32:03 +0000 (09:32 +0000)]
Update Slovak translation

9 years agoUpdate Slovak translation
Dušan Kazik [Sun, 29 Jan 2017 09:30:05 +0000 (09:30 +0000)]
Update Slovak translation

9 years agoRemove tests/testtreemenu
Daniel Boles [Sat, 28 Jan 2017 20:21:56 +0000 (20:21 +0000)]
Remove tests/testtreemenu

Since GtkTreeMenu became a private class only used by GtkComboBox, all
this test actually did was to show a ComboBox constructed with a custom
CellArea. Now that the latter is no longer possible, the test just shows
a handful of settings that do nothing. Just test GtkComboBox directly.

9 years agoFix translator comments
Piotr Drąg [Sat, 28 Jan 2017 00:10:12 +0000 (01:10 +0100)]
Fix translator comments

They need to be exactly one line above a string to show up in .po files.

9 years agoRevert "notebook: redraw arrows after closing a tab"
Michael Catanzaro [Fri, 27 Jan 2017 14:54:24 +0000 (08:54 -0600)]
Revert "notebook: redraw arrows after closing a tab"

This reverts commit 218beb2ef49d407b547047693605328c10d4877d.

9 years agowayland: Ensure to set gtk_surface dbus properties after hide()
Carlos Garnacho [Wed, 25 Jan 2017 14:53:55 +0000 (15:53 +0100)]
wayland: Ensure to set gtk_surface dbus properties after hide()

Currently hiding destroys the wl_surface and all related interfaces,
(including the gtk_surface1) so the next time the GdkWindow is mapped,
we don't bother to set the DBus properties. Toggle the check off so
it's actually issued again after the GdkWindow gets a gtk_surface1.

https://bugzilla.gnome.org/show_bug.cgi?id=773686

9 years agoUpdate Kazakh translation
Baurzhan Muftakhidinov [Wed, 25 Jan 2017 09:11:28 +0000 (09:11 +0000)]
Update Kazakh translation

9 years agoUpdate Kazakh translation
Baurzhan Muftakhidinov [Wed, 25 Jan 2017 09:08:46 +0000 (09:08 +0000)]
Update Kazakh translation

9 years agonotebook: redraw arrows after closing a tab
Michael Catanzaro [Sat, 21 Jan 2017 02:19:56 +0000 (20:19 -0600)]
notebook: redraw arrows after closing a tab

https://bugzilla.gnome.org/show_bug.cgi?id=777547

9 years agoUpdate German translation
Mario Blättermann [Tue, 24 Jan 2017 13:32:48 +0000 (13:32 +0000)]
Update German translation

9 years agowidget: Remove gtk_widget_get_preferred_size mention from docs
Timm Bäder [Sun, 22 Jan 2017 14:01:53 +0000 (15:01 +0100)]
widget: Remove gtk_widget_get_preferred_size mention from docs

Mention gtk_widget_measure instead.

9 years agoflowbox: Measure child widget sizes using gtk_widget_measure
Timm Bäder [Sun, 22 Jan 2017 14:01:40 +0000 (15:01 +0100)]
flowbox: Measure child widget sizes using gtk_widget_measure

9 years agowidget: Remove warning about already visible widgets
Timm Bäder [Sun, 22 Jan 2017 13:48:28 +0000 (14:48 +0100)]
widget: Remove warning about already visible widgets

That was just added by mistake of course.

9 years agoRemove unnecessary gtk_widget_show calls
Timm Bäder [Sun, 22 Jan 2017 13:37:56 +0000 (14:37 +0100)]
Remove unnecessary gtk_widget_show calls

9 years agogtkfontbutton: hexpand the font label
Timm Bäder [Sat, 21 Jan 2017 07:45:44 +0000 (08:45 +0100)]
gtkfontbutton: hexpand the font label

To restore the previous look.

9 years ago3to4: Fix typo in previous commit
Daniel Boles [Sat, 21 Jan 2017 22:43:35 +0000 (22:43 +0000)]
3to4: Fix typo in previous commit

9 years ago3to4: Fix suggested replacements for border-width
Daniel Boles [Sat, 21 Jan 2017 22:39:06 +0000 (22:39 +0000)]
3to4: Fix suggested replacements for border-width

The new CSS border-spacing does what Grid::(row|column)_spacing and
Box::spacing already did, i.e. controlling the space added between child
widgets, so it’s not a replacement for Container::border-width.

9 years agocombobox: Stop pointlessly NULL-checking the menu
Daniel Boles [Sat, 21 Jan 2017 20:40:21 +0000 (20:40 +0000)]
combobox: Stop pointlessly NULL-checking the menu

We now have a valid menu to use at all times.

9 years agocombobox: Move area and menu to .ui file
Daniel Boles [Sat, 21 Jan 2017 20:23:27 +0000 (20:23 +0000)]
combobox: Move area and menu to .ui file

Now that priv->area is guaranteed to be constructed by us, and not
passed in by a user, we can move it to the .ui file and stop manually
managing its lifetime altogether. And once the area is there, we can
move the menu there too (and stop pointlessly destroying/rebuilding it).

9 years agocombobox: Remove property cell-area
Daniel Boles [Sat, 21 Jan 2017 12:54:49 +0000 (12:54 +0000)]
combobox: Remove property cell-area

The CellArea is going to become a pure implementation detail & be moved
to the .ui, instead of letting users mess with it (if anyone ever did).

9 years agocombobox: Reuse code rather than reimplementing it
Daniel Boles [Sat, 21 Jan 2017 15:11:40 +0000 (15:11 +0000)]
combobox: Reuse code rather than reimplementing it

We already have cell_layout_is_sensitive() to get whether at least one
cell in a Layout is sensitive, which we need because CellLayout/View
do not implement foreach(). So, since we wrote that, we can use it to
check our CellArea too, instead of doing foreach with a custom callback.

9 years agocombobox: some code cleanups
Daniel Boles [Sat, 21 Jan 2017 14:44:30 +0000 (14:44 +0000)]
combobox: some code cleanups

 * Merge adjacent if statements with the same condition
 * Add a space between a function and its declaration

9 years agomenushell: Fix select_last() to get last, not 1st
Daniel Boles [Sat, 21 Jan 2017 18:53:38 +0000 (18:53 +0000)]
menushell: Fix select_last() to get last, not 1st

It was broken in the same way as select_first(), as explained in
commit a5211adb225172195d6778d652b58632c38afcbf

9 years agocombobox: Fix documentation typo bx => box
Daniel Boles [Sat, 21 Jan 2017 16:10:32 +0000 (16:10 +0000)]
combobox: Fix documentation typo bx => box

9 years agomenushell: Make select_first() do that, not last…
Daniel Boles [Sat, 21 Jan 2017 15:50:54 +0000 (15:50 +0000)]
menushell: Make select_first() do that, not last…

It was looping over all items, not breaking out when it found the first
selectable one, and then selecting the _last_ selectable one (if any)
found. So, it did exactly the opposite of its name. This made me quite
baffled when opening a submenu with right-arrow put me at its last item.

Originally, the loop set to_select and broke if the current item was
selectable and not tear-off, meaning that it would correctly select the
first suitable item. However, when tear-off functionality was removed
in commit 4ed9452e9028bb90589474783cebac57ab66e2c9, so was the break.

9 years agoUpdate Polish translation
Piotr Drąg [Fri, 20 Jan 2017 22:47:04 +0000 (23:47 +0100)]
Update Polish translation

9 years agoFix CSS spelling in a translatable string
Piotr Drąg [Fri, 20 Jan 2017 22:46:38 +0000 (23:46 +0100)]
Fix CSS spelling in a translatable string

9 years agomenushell: Don’t dereference before typechecking
Daniel Boles [Fri, 20 Jan 2017 22:15:42 +0000 (22:15 +0000)]
menushell: Don’t dereference before typechecking

9 years agoUpdate POTFILES.in and POTFILES.skip
Piotr Drąg [Fri, 20 Jan 2017 21:11:22 +0000 (22:11 +0100)]
Update POTFILES.in and POTFILES.skip

9 years agocombobox: If typechecking, don’t reference before
Daniel Boles [Fri, 20 Jan 2017 20:43:19 +0000 (20:43 +0000)]
combobox: If typechecking, don’t reference before

9 years agoDon't hide windows and popovers in init()
Timm Bäder [Fri, 20 Jan 2017 09:37:29 +0000 (10:37 +0100)]
Don't hide windows and popovers in init()

Instead, don't make them visible in gtk_widget_init in the first place.

9 years agofontbutton: Be a GtkWidget
Timm Bäder [Thu, 19 Jan 2017 19:15:43 +0000 (20:15 +0100)]
fontbutton: Be a GtkWidget

9 years agoassistant: Don't forget to remove child widgets
Timm Bäder [Thu, 19 Jan 2017 14:02:59 +0000 (15:02 +0100)]
assistant: Don't forget to remove child widgets

9 years agotoolitemgroup: Properly remove internal child widget
Timm Bäder [Thu, 19 Jan 2017 13:37:51 +0000 (14:37 +0100)]
toolitemgroup: Properly remove internal child widget

We now need to use gtk_widget_unparent and can't just destroy it.

9 years agopopovermenu: Remove forall implementation
Timm Bäder [Thu, 19 Jan 2017 13:34:42 +0000 (14:34 +0100)]
popovermenu: Remove forall implementation

9 years agobutton: Don't explicitly show child widgets
Timm Bäder [Thu, 19 Jan 2017 11:30:23 +0000 (12:30 +0100)]
button: Don't explicitly show child widgets

9 years agorecorder: Adapt to widget visibility changes
Timm Bäder [Thu, 19 Jan 2017 11:26:56 +0000 (12:26 +0100)]
recorder: Adapt to widget visibility changes

We now need to explicitly hide the details label.

9 years agoFix some widget visibility fallout
Timm Bäder [Thu, 19 Jan 2017 10:00:30 +0000 (11:00 +0100)]
Fix some widget visibility fallout

9 years agowidget: Remove show-all property
Timm Bäder [Thu, 19 Jan 2017 09:31:03 +0000 (10:31 +0100)]
widget: Remove show-all property

Doesn't make sense anymore now that gtk_widget_show_all is gone.

9 years agoRemove gtk_widget_show_all
Timm Bäder [Thu, 19 Jan 2017 09:02:04 +0000 (10:02 +0100)]
Remove gtk_widget_show_all

9 years agowidget: Remove show_all vfunc
Timm Bäder [Thu, 19 Jan 2017 07:50:37 +0000 (08:50 +0100)]
widget: Remove show_all vfunc

9 years agofilechooserbutton: Be a GtkWidget
Timm Bäder [Wed, 18 Jan 2017 21:21:42 +0000 (22:21 +0100)]
filechooserbutton: Be a GtkWidget

Instead of subclassing GtkBox to have 2 child widgets, subclass
GtkWidget and only render one of them.

9 years agosizerequest: Use gtk_widget_measure to measure widget sizes
Timm Bäder [Mon, 16 Jan 2017 17:47:31 +0000 (18:47 +0100)]
sizerequest: Use gtk_widget_measure to measure widget sizes

9 years agogtkbuilder: Improve error messages
Timm Bäder [Sat, 14 Jan 2017 09:08:53 +0000 (10:08 +0100)]
gtkbuilder: Improve error messages

9 years agoshortcutswindow: Unset search_bar in dispose
Timm Bäder [Thu, 12 Jan 2017 16:13:19 +0000 (17:13 +0100)]
shortcutswindow: Unset search_bar in dispose

And check for null-ness in unmap. This prevents a crash when the window
is first disposed and then unmapped.

9 years agoshortcutswindow: Use GtkButton:icon-name for search button
Timm Bäder [Thu, 12 Jan 2017 12:10:14 +0000 (13:10 +0100)]
shortcutswindow: Use GtkButton:icon-name for search button

9 years agoshortcutsshortcut: Be a GtkWidget
Timm Bäder [Thu, 12 Jan 2017 11:59:06 +0000 (12:59 +0100)]
shortcutsshortcut: Be a GtkWidget

Instead of subclassing GtkBox and overriding _add to not work, subclass
GtkWidget and add a normal GtkBox as a child widget.

9 years agogtkshortcutswindow: Adapt to GtkWidget visibility changes
Timm Bäder [Thu, 12 Jan 2017 10:26:55 +0000 (11:26 +0100)]
gtkshortcutswindow: Adapt to GtkWidget visibility changes

9 years agowidget-factory: Remove some gtk3-widget-factory leftovers
Timm Bäder [Thu, 12 Jan 2017 09:12:31 +0000 (10:12 +0100)]
widget-factory: Remove some gtk3-widget-factory leftovers

9 years agofilechooser: adapt to GtkWidget:visible changes
Timm Bäder [Thu, 12 Jan 2017 09:04:35 +0000 (10:04 +0100)]
filechooser: adapt to GtkWidget:visible changes

9 years agowidget-factory: Adapt to GtkWidget visibility changes
Timm Bäder [Thu, 12 Jan 2017 08:47:50 +0000 (09:47 +0100)]
widget-factory: Adapt to GtkWidget visibility changes

Make the infobar and the toolbar invisible by default and remove all the
lines showing the other widgets.

9 years agocoloreditor: Hide overlay boxes
Timm Bäder [Thu, 12 Jan 2017 08:43:45 +0000 (09:43 +0100)]
coloreditor: Hide overlay boxes

9 years agoHide popovers and toplevels by default
Timm Bäder [Thu, 12 Jan 2017 08:43:17 +0000 (09:43 +0100)]
Hide popovers and toplevels by default

9 years agowidget: Be visible by default
Timm Bäder [Thu, 12 Jan 2017 08:29:59 +0000 (09:29 +0100)]
widget: Be visible by default

9 years agocombobox: popdown() the menu during unmap()
Daniel Boles [Fri, 20 Jan 2017 03:30:36 +0000 (03:30 +0000)]
combobox: popdown() the menu during unmap()

combo_box_popdown() currently skips popping down our menu if it is NULL.
But the required call to this at end-of-life was in destroy(), by which
point dispose() already NULLed the menu, so Menu::popdown() would never
run, even if it should. Fix this by trying popdown() earlier in unmap().
Also, add a converse assurance that we don’t popup() while not mapped.

Even once we remove all the now-pointless NULL checks, destroy() was the
wrong place to call combo_box_popdown(), and unmap() is the right place.